Page({
  data: {
    active: 0,
    // 全部的
    whole: [],
    flag: true,
    // 待使用，状态码为0
    notUsed: [],
    flag1: true,
    // 未评价 状态码为1
    notEvaluated: [],
    flag2: true,
    flag3: true,
    // 已评价 状态码2
    Evaluated: [],
    _openid:''
  },
  onShow: function () {
    // 获取当天的日期
    let mytime = new Date()
    let month = mytime.getMonth() + 1
    let day = mytime.getDate()
    const db = wx.cloud.database()
    const orders = db.collection('orders')
    // 定义一个变量，如果在本地缓存找不到用户数据，则去数据库查询
    let flag = false
    // 获取云函数，拿到openid
    wx.cloud.callFunction({
      name: "userOpenId",
      success: res => {
        console.log(res)
        // 将从云函数拿到的openid赋值给data里面的变量
        this.data._openid = res.result.openid
        // 获取缓存数据
        let test = wx.getStorageSync('userRecord')
        for (let i = 0; i < test.length; i++) {
          if (this.data._openid == test[i].openid) {
            // 获取全部
            orders.orderBy('orders', 'desc').where({
              _openid:this.data._openid
            }).get().then(res => {
              console.log(res.data)
              for (let i = 0; i < res.data.length; i++) {
                // 提取月份和日
                let Tmonth = res.data[i].mmddDate.slice(0, res.data[i].mmddDate.length - 4)
                let Tday = res.data[i].mmddDate.slice(3, res.data[i].mmddDate.length - 1)
                // 用今天的时间和票的时间对比，如果过期了就修改comment ‘‘已过期
                if ((Tmonth == month) && (Tday < day)) {
                  orders.doc(res.data[i]._id).update({
                    data: {
                      btn: '已过期不可使用',
                      state: 3,
                      stateinfo: '已过期'
                    }
                  }).then(res => {
                    console.log(res)
                  })
                }
              }
              res.data.length < 1 ? this.data.flag = true : this.data.flag = false;
              this.setData({
                whole: res.data,
                flag: this.data.flag
              })
            })
            // 获取待使用whrer 条件 ，state 等于0
            wx.showLoading({
              title: '加载中',
            })
            orders.orderBy('createTime', 'desc').where({
              state: 0,
                _openid:this.data._openid
            }).get().then(res => {
              wx.hideLoading()
              console.log(res.data)
              res.data.length < 1 ? this.data.flag1 = true : this.data.flag1 = false;
              this.setData({
                notUsed: res.data,
                flag1: this.data.flag1
              })
            })
            // 已使用待评价的 state状态码为1
            orders.orderBy('createTime', 'desc').where({
              state: 1,
              _openid:this.data._openid
            }).get().then(res => {
              console.log()
              console.log('res')
              console.log(res.data.length)
              res.data.length < 1 ? this.data.flag2 = true : this.data.flag2 = false;
              this.setData({
                notEvaluated: res.data,
                flag2: this.data.flag2
              })
            })
            // 已评价 状态码 state 2
            // 已使用待评价的 state状态码为1
            orders.orderBy('createTime', 'desc').where({
              state: 2,
              _openid:this.data._openid
            }).get().then(res => {
              console.log()
              console.log('res')
              console.log(res.data.length)
              res.data.length < 1 ? this.data.flag3 = true : this.data.flag3 = false;
              this.setData({
                Evaluated: res.data,
                flag3: this.data.flag3
              })
            })
            flag = false
            return
          } else {
            flag = true
          }
        }
        // 如果在数据缓存中找不到用户信息则调用云数据库 用户表循环判断是否有过此用户的记录，根据openid来对比判断
        if (flag === true) {
          // 云数据库初始化
          const db = wx.cloud.database()
          const userInfo = db.collection('userInfo')
          userInfo.where({
            openid: this.data._openid
          }).get().then(res => {
            // 获取全部
            orders.orderBy('createTime', 'desc').get().then(res => {
              console.log(res.data)
              for (let i = 0; i < res.data.length; i++) {
                // 提取月份和日
                let Tmonth = res.data[i].mmddDate.slice(0, res.data[i].mmddDate.length - 4)
                let Tday = res.data[i].mmddDate.slice(3, res.data[i].mmddDate.length - 1)
                // 用今天的时间和票的时间对比，如果过期了就修改comment ‘‘已过期
                if ((Tmonth == month) && (Tday < day)) {
                  orders.doc(res.data[i]._id).update({
                    data: {
                      btn: '已过期不可使用',
                      state: 3,
                      stateinfo: '已过期',
                      css: "color:#969696"
                    }
                  }).then(res => {
                    console.log(res)
                  })
                }
              }
              res.data.length < 1 ? this.data.flag = true : this.data.flag = false;
              this.setData({
                whole: res.data,
                flag: this.data.flag
              })
            })
            // 获取待使用whrer 条件 ，state 等于0
            orders.orderBy('createTime', 'desc').where({
              state: 0
            }).get().then(res => {
              console.log(res.data)
              res.data.length < 1 ? this.data.flag1 = true : this.data.flag1 = false;
              this.setData({
                notUsed: res.data,
                flag1: this.data.flag1
              })
            })
            // 已使用待评价的 state状态码为1
            orders.orderBy('createTime', 'desc').where({
              state: 1
            }).get().then(res => {
              console.log()
              console.log('res')
              console.log(res.data.length)
              res.data.length < 1 ? this.data.flag2 = true : this.data.flag2 = false;
              this.setData({
                notEvaluated: res.data,
                flag2: this.data.flag2
              })
            })
            // 已评价 状态码 state 2
            // 已使用待评价的 state状态码为1
            orders.orderBy('createTime', 'desc').where({
              state: 2
            }).get().then(res => {
              console.log()
              console.log('res')
              console.log(res.data.length)
              res.data.length < 1 ? this.data.flag3 = true : this.data.flag3 = false;
              this.setData({
                Evaluated: res.data,
                flag3: this.data.flag3
              })
            })
            return
          })
        }
        wx.showToast({
          title: '请先登录',
          icon: "error"
        })
      }
    })


  },

  // 跳转到评论页面
  comment: function (e) {
    // 让状态码是1 才可以点击评论
    if (e.currentTarget.dataset.state == 1) {
      console.log('跳转评论页面')
      wx.navigateTo({
        url: '../../pages/order/writecomments/writecomments?id=' + e.currentTarget.dataset.id,
      })
    }
  },
  // 跳转到详细订单
  toOrders: function (e) {
    console.log(e.currentTarget.dataset.id)
    wx.navigateTo({
      url: '../../pages/order/orders/orders?id=' + e.currentTarget.dataset.id,
    })
  }
});